#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>

using namespace std;

template<class T>
void Max(const T& a, const T& b)
{
	cout << "void Max(const T & a, const T & b)" << endl;
}

template<>
void Max<int>(const int& a, const int& b)
{
	cout << "void Max<int>(const int& a, const int& b)" << endl;
}

template<>
void Max<char>(const char& a, const char& b)
{
	cout << "void Max<char>(const char& a, const char& b)" << endl;
}

void Max(const int& a, const int& b)
{
	cout << "void Max(const int& a, const int& b)" << endl;
}

int main()
{
	Max(1, 2);
	Max(1.1, 2.2);
	Max('c', 'h');
	Max<int>(1, 2);
	Max<double>(1.1, 2.2);

	return 0;
}